// source --> https://langhamfinancial.co.uk/wp-content/plugins/exit-notifier/assets/js/frontend.js?ver=1.4.3 function exit_notifier_leave_now(event) { var urlsnippet = event.currentTarget.href; if (ExitBoxSettings.Include_URL === 'on') { if (event.currentTarget.href.length > 40) { urlsnippet = event.currentTarget.href.substr(0, 40) + "..."; } } else { urlsnippet = ''; } if (ExitBoxSettings.theme === '' ) { ExitBoxSettings.theme = 'default'; } jQuery.jAlert({ 'type': 'confirm', 'title': ExitBoxSettings.title, 'content': ExitBoxSettings.body, 'confirmBtnText': ExitBoxSettings.GoButtonText + ' ' + urlsnippet, 'denyBtnText': ExitBoxSettings.CancelButtonText, 'theme': ExitBoxSettings.theme, 'backgroundColor': ExitBoxSettings.backgroundcolor, 'size': ExitBoxSettings.size, 'showAnimation': ExitBoxSettings.showAnimation, 'hideAnimation': ExitBoxSettings.hideAnimation, 'onConfirm': function() { if (ExitBoxSettings.new_window === 'on') { window.open(event.currentTarget.href, 'New Window'); } else { location.href = event.currentTarget.href; } }, 'onDeny': function(){ } }); if (ExitBoxSettings.enable_timeout === 'on') { //console.log("Setting " + ExitBoxSettings.timeout_seconds + " seconds timeout on the " + ExitBoxSettings.continue_or_cancel + " button."); if (ExitBoxSettings.continue_or_cancel === 'continue') { setTimeout(function() { jQuery(".confirmBtn").click(); }, ExitBoxSettings.timeout_seconds*1000); } else if (ExitBoxSettings.continue_or_cancel === 'cancel') { setTimeout(function() { jQuery(".denyBtn").click(); }, ExitBoxSettings.timeout_seconds*1000); } } return false; }; jQuery(document).ready(function(){ jQuery.noConflict(); //console.log(ExitBoxSettings); jQuery('head').append(''); jQuery('head').append(''); jQuery(function($) { var select_external = 'a[href*="//"]:not([href*="' + ExitBoxSettings.siteroot + '"])'; // console.log('apply_to_all_offsite_links: ' + ExitBoxSettings.apply_to_all_offsite_links); // console.log('jquery_selector_field: ' + ExitBoxSettings.jquery_selector_field); if (ExitBoxSettings.apply_to_all_offsite_links !== 'on') { select_external = ExitBoxSettings.jquery_selector_field; } jQuery(select_external).addClass('exitNotifierLink'); jQuery(document).on( 'click', select_external, exit_notifier_leave_now ); if (ExitBoxSettings.visual === 'on') { jQuery(select_external).append(' '); } }); /* var myevent = new Object(); myevent.currentTarget = {}; myevent.currentTarget.href = "http://kernel.org"; jQuery( "#footer" ).click(function() { exit_notifier_leave_now(myevent); }); */ }); // source --> https://langhamfinancial.co.uk/wp-content/plugins/exit-notifier/assets/js/jAlert-v3.js?ver=1.4.3 /* * * jAlert v.3 Made with love by Versatility Werks (http://flwebsites.biz) MIT Licensed * * */ ;(function($) { $.fn.jAlert = function(options) { var alert = this, themes = ['default', 'custom', 'green', 'red', 'black', 'blue','yellow'], sizes = ['xsm', 'sm', 'md', 'lg', 'xlg', 'full'], backgroundColors = ['white', 'black'], styles = [], //array of styles that gets joined together with a space between in a style tag on the jalert div classes = ['animated'], //array of classes that get joined together with a space between on the jalert div backgroundClasses = []; //array of classes that get joined together with a space between on the jalert background div /* Block Multiple Instances by running jAlert for each one */ if (alert.length > 1){ alert.each(function() { $(this).jAlert(alert.options); }); return this; } /* Combine user alert.options with default */ alert.options = $.extend({}, $.fn.jAlert.defaults, options); alert.instance = false; if( alert.options.type == 'confirm' ) { if( !alert.options.content ) { alert.options.content = alert.options.confirmQuestion; } alert.options.btns = [ { 'text': alert.options.confirmBtnText, 'theme': 'green', 'class': 'confirmBtn', 'closeAlert': true, 'onClick': alert.options.onConfirm }, { 'text': alert.options.denyBtnText, 'theme': 'red', 'class': 'denyBtn', 'closeAlert': true, 'onClick': alert.options.onDeny } ]; alert.options.autofocus = alert.options.confirmAutofocus; } /* Add theme class */ if( $.inArray(alert.options.theme, themes) == -1 ) { console.log('jAlert Config Error: Invalid theme selection.'); return false; } classes.push('ja_'+alert.options.theme); /* If they didn't set an id, just create a random one */ if( !alert.options.id ) { var unique = Date.now().toString() + Math.floor(Math.random() * 100000); alert.options.id = 'ja_' + unique; } /* If they set custom classes */ if( alert.options.class ) { classes.push(alert.options.class); } if( alert.options.classes ) { classes.push(alert.options.classes); } /* If no title, add class */ if( !alert.options.title ) { classes.push( 'ja_noTitle' ); } /* if it's set and it's not in the array of sizes OR it's an object and it's missing width/height */ if( alert.options.size && ((typeof alert.options.size == 'string' && $.inArray(alert.options.size, sizes) == -1) || (typeof alert.options.size == 'object' && (typeof alert.options.size.width == 'undefined' || typeof alert.options.size.height == 'undefined'))) ) { console.log('jAlert Config Error: Invalid size selection (try a preset or make sure you\'re including height and width in your size object).'); return false; } /* If it's not set, set to md */ else if( !alert.options.size ) { classes.push('ja_sm'); } /* If it's set and it's an object */ else if( typeof alert.options.size == 'object' ) { styles.push('width: '+alert.options.size.width+';'); styles.push('height: '+alert.options.size.height+';'); } /* If it's set and it's not an object */ else { classes.push('ja_'+alert.options.size); } /* Add background color class */ if( $.inArray(alert.options.backgroundColor, backgroundColors) == -1 ) { console.log('jAlert Config Error: Invalid background color selection.'); return false; } backgroundClasses.push('ja_wrap_'+alert.options.backgroundColor); /* If there are button(s), then you obviously don't want to hide the div when you alert anywhere or they'll be useless...SAME with autofocus */ if( (typeof alert.options.btns == 'object' || typeof alert.options.btns == 'array') || alert.options.autofocus ){ alert.options.closeOnClick = false; } alert.options.onOpen = [ alert.options.onOpen ]; var onload = "onload='$.fn.jAlert.mediaLoaded($(this))'", loader = "
Loading...
"; /* Creates content */ if( alert.options.image ) { alert.options.content = "
"+ loader+ ""; } else if( alert.options.video ) { alert.options.content = "
"+ loader+ "
"+ "
"+ "
"; /* Add to the onOpen callbacks array to append the iframe and attach the onload callback in a crossbrowser compatible way (IE is a bizitch). */ alert.options.onOpen.unshift( function(alert){ var iframe = document.createElement("iframe"); iframe.src = alert.options.video; if(iframe.addEventListener) { iframe.addEventListener('load', function(){ $.fn.jAlert.mediaLoaded($(this)); }, true) } else if (iframe.attachEvent){ iframe.attachEvent("onload", function(){ $.fn.jAlert.mediaLoaded($(this)); }); } else { iframe.onload = function(){ $.fn.jAlert.mediaLoaded($(this)); }; } alert.find('.ja_video').append(iframe); }); } else if( alert.options.iframe ) { if( !alert.options.iframeHeight ) { alert.options.iframeHeight = $(window).height() * 0.9+'px'; } alert.options.content = "
"+ loader+ "
"; /* Add to the onOpen callbacks array to append the iframe and attach the onload callback in a crossbrowser compatible way (IE is a bizitch). */ alert.options.onOpen.unshift( function(alert){ var iframe = document.createElement("iframe"); iframe.src = alert.options.iframe; iframe.height = alert.options.iframeHeight; iframe.className = 'ja_iframe'; if(iframe.addEventListener) { iframe.addEventListener('load', function(){ $.fn.jAlert.mediaLoaded($(this)); }, true) } else if (iframe.attachEvent){ iframe.attachEvent("onload", function(){ $.fn.jAlert.mediaLoaded($(this)); }); } else { iframe.onload = function(){ $.fn.jAlert.mediaLoaded($(this)); }; } alert.find('.ja_media_wrap').append(iframe); }); } else if( alert.options.ajax ) { alert.options.content = "
"+ loader+ "
"; /* Store as another var */ onAjaxCallbacks = alert.options.onOpen; /* Overwrite the onOpen to be the ajax call */ alert.options.onOpen = [function(alert){ $.ajax(alert.options.ajax, { async: true, complete: function(jqXHR, textStatus) { alert.find('.ja_media_wrap').replaceWith(jqXHR.responseText); /* Run onOpen callbacks here */ $.each(onAjaxCallbacks, function(index, onAjax){ onAjax(alert); }); }, error: function(jqXHR, textStatus, errorThrown) { alert.options.onAjaxFail(alert, 'Error getting content: Code: '+jqXHR.status+ ' : Msg: '+jqXHR.statusText); } }); }]; } alert.centerAlert = function() { var viewportHeight = $(window).height(), alertHeight = alert.instance.height(), diff = viewportHeight - alertHeight; var top = diff / 2; if( top > 200 ) { top = top - 100; } if( top <= 0 ) { top = 0; } alert.instance.css('margin-top', top+'px'); $('body').css('overflow', 'hidden'); if( diff > 5 ) { alert.instance.parents('.ja_wrap').css('position', 'fixed'); } else { alert.instance.parents('.ja_wrap').css('position', 'absolute'); /* Scroll to alert */ $('html, body').animate({ scrollTop: top - 50 }, 200); } } var animateAlert = function(which, thisAlert){ if( which == 'hide' ) { thisAlert.removeClass(alert.options.showAnimation).addClass(alert.options.hideAnimation); } else { thisAlert.centerAlert(); thisAlert.addClass(alert.options.showAnimation).removeClass(alert.options.hideAnimation).show(); } } var getBtnHTML = function(btn){ if(typeof btn.href == 'undefined'){ btn.href = ''; } if(typeof btn.class == 'undefined'){ btn.class = ''; } if(typeof btn.theme == 'undefined'){ btn.class += ' ja_btn_default'; }else{ btn.class += ' ja_btn_'+btn.theme; } if(typeof btn.text == 'undefined'){ btn.text = ''; } if(typeof btn.id == 'undefined'){ var unique = Date.now().toString() + Math.floor(Math.random() * 100000); btn.id = 'ja_btn_' + unique; } if(typeof btn.target == 'undefined'){ btn.target = '_self'; } if(typeof btn.closeAlert == 'undefined'){ btn.closeAlert = true; } /* Attach on click handler */ $('body').on('click', '#'+btn.id, function(e){ var button = $(this); if( btn.closeAlert ) { button.parents('.jAlert').closeAlert(); } var callbackResponse = true; if( typeof btn.onClick == 'function' ) { callbackResponse = btn.onClick(e, button); } if( !callbackResponse || btn.closeAlert ) { e.preventDefault(); return false; } return callbackResponse; }); return ""+btn.text+" "; } /* Hides an alert and optionally removes it */ alert.closeAlert = function(remove, onClose){ var alertInstance = $(this); if( remove != false ) { remove = true; } if(alertInstance.length) { alertInstance.unbind('DOMSubtreeModified'); animateAlert('hide', alertInstance); window.setTimeout(function() { var alertWrap = alertInstance.parents('.ja_wrap'); if( remove ) { alertWrap.remove(); } else { alertWrap.hide(); } if(typeof onClose == 'function') { onClose(alertInstance); } else if(typeof alert.options.onClose == 'function') { alert.options.onClose(alertInstance); } if( $('.jAlert').length > 0 ) { $('.jAlert:last').centerAlert(); } else { $('body').css('overflow', 'auto'); } }, alert.options.animationTimeout); } return this; } /* Shows an alert that already exists */ alert.showAlert = function(replaceOthers, removeOthers, onOpen, onClose){ var alertInstance = $(this); if( replaceOthers != false ) { replaceOthers = true; } if( removeOthers !== false ) { removeOthers = true; } if( replaceOthers ) { $('.jAlert:visible').closeAlert(removeOthers); } /* Put this one above the last one by moving to end of dom */ var wrap = alertInstance.parents('.ja_wrap'); $('body').append(wrap); animateAlert('show', alertInstance); if( typeof onClose == 'function' ) { alert.options.onClose = onClose; } window.setTimeout(function(){ if(typeof onOpen == 'function') { onOpen(alertInstance); } }, alert.options.animationTimeout); } /* Adds a new alert to the dom */ var addAlert = function(content){ var html = ''; html += '
'+ '
'+ '
'; if( alert.options.closeBtn ) { html += "
"; } html += '
'+content; if( alert.options.btns ) { html += '
'; } if( typeof alert.options.btns[0] == 'object' ) { $.each(alert.options.btns, function(index, btn){ if( typeof btn == 'object' ) { html += getBtnHTML(btn); } }); } else if( typeof alert.options.btns == 'object' ) { html += getBtnHTML(alert.options.btns); } else if( alert.options.btns ) { console.log('jAlert Config Error: Incorrect value for btns (must be object or array of objects): '+alert.options.btns); } if( alert.options.btns ) { html += '
'; } html += '
'+ '
'+ '
'+ '
'; var alertHTML = $(html); if( alert.options.replaceOtherAlerts ) { $('.jAlert:visible').closeAlert(); } $('body').append(alertHTML); alert.instance = $('#'+alert.options.id); animateAlert('show', alert.instance); if( alert.options.closeBtn ){ alert.instance.on('click', '.closejAlert', function(e){ e.preventDefault(); $(this).parents('.jAlert').closeAlert(); return false; }); } /* Bind mouseup handler to document if this alert has closeOnClick enabled */ if( alert.options.closeOnClick ){ /* Unbind if already exists */ $(document).off('mouseup', $.fn.jAlert.onMouseUp); /* Bind mouseup */ $(document).on('mouseup', $.fn.jAlert.onMouseUp); } /* Bind on keydown handler to document and if esc was pressed, find all visible jAlerts with that close option enabled and close them */ if( alert.options.closeOnEsc ){ /* Unbind if already exists */ $(document).off('keydown', $.fn.jAlert.onEscKeyDown); /* Bind keydown */ $(document).on('keydown', $.fn.jAlert.onEscKeyDown); } /* If there are onOpen callbacks, run them. */ if( alert.options.onOpen ) { $.each(alert.options.onOpen, function(index, onOpen){ onOpen(alert.instance); }); } /* If the alert has an element that should be focused by default */ if( alert.options.autofocus ) { alert.instance.find(alert.options.autofocus).focus(); } alert.instance.bind("DOMSubtreeModified", function(){ alert.instance.centerAlert(); }); return alert.instance; }; /* Shows an alert based on content type */ alert.initialize = function(){ if( !alert.options.content && !alert.options.image && !alert.options.video && !alert.options.iframe && !alert.options.ajax ) { console.log('jAlert potential error: No content defined'); return addAlert(''); } else { if( !alert.options.content ) { alert.options.content = ''; } return addAlert(alert.options.content); } } alert.initialize(); return alert; /* END OF PLUGIN */ }; /* Default alert.options */ $.fn.jAlert.defaults = { 'title': false, //title for the popup (false = don't show) 'content': false, //html for the popup (replaced if you use image, ajax, or iframe) 'image': false, //adds a centered img tag 'imageWidth': 'auto', //defaults to max-width: 100%; width: auto; 'video': false, //adds a responsive iframe video - value is the "src" of the iframe 'ajax': false, //uses ajax call to get contents 'onAjaxFail': function(alert, errorThrown){ //callback for when ajax fails alert.closeAlert(); errorAlert(errorThrown); }, 'iframe': false, //uses iframe as content 'iframeHeight': false, //string. height of the iframe within the popup (false = 90% of viewport height) 'class': '', //adds a class to the jAlert (add as many as you want space delimited) 'classes': '', //add classes to the jAlert (space delimited) 'id': false, //adds an ID to the jAlert 'showAnimation': 'fadeInUp', 'hideAnimation': 'fadeOutDown', 'animationTimeout': 600, //approx duration of animation to wait until onClose 'theme': 'default', // red, green, blue, black, default 'backgroundColor': 'black', //white, black 'size': false, //false = css default, xsm, sm, md, lg, xlg, full, { height: 200, width: 200 } 'replaceOtherAlerts': false, //if there's already an open jAlert, remove it first 'closeOnClick': false, //close the alert when you click anywhere 'closeOnEsc': true, //close the alert when you click the escape key 'closeBtn': true, //adds a button to the top right of the alert that allows you to close it 'closeBtnAlt': false, //alternative close button 'btns': false, //adds buttons to the popup at the bottom. Pass an object for a single button, or an object of objects for many /* Variety of buttons you could create (also, an example of how to pass the object 'btns': [ {'text':'Open in new window', 'closeAlert':false, 'href': 'http://google.com', 'target':'_new'}, {'text':'Cool, close this alert', 'theme': 'blue', 'closeAlert':true}, {'text':'Buy Now', 'closeAlert':true, 'theme': 'green', 'onClick': function(){ console.log('You bought it!'); } }, {'text':'I do not want it', 'closeAlert': true, 'theme': 'red', 'onClick': function(){ console.log('Did not want it'); } }, {'text':'DOA', 'closeAlert': true, 'theme': 'black', 'onClick': function(){ console.log('Dead on arrival'); } } ] */ 'btnBackground': true, //adds optional background to btns 'autofocus': false, //pass a selector to autofocus on it 'onOpen': function(alert){ //on open call back. Fires just after the alert has finished rendering return false; }, 'onClose': function(alert){ //fires when you close the alert return false; }, 'type': 'modal', //modal, confirm, tooltip /* The following only applies when type == 'confirm' */ 'confirmQuestion': 'Are you sure?', 'confirmBtnText': 'Yes', 'denyBtnText': 'No', 'confirmAutofocus': '.confirmBtn', //confirmBtn or denyBtn 'onConfirm': function(e, btn){ e.preventDefault(); console.log('confirmed'); return false; }, 'onDeny': function(e, btn){ e.preventDefault(); //console.log('denied'); return false; } } /* Mouseup on document */ $.fn.jAlert.onMouseUp = function(e){ /* Find top visible jAlert and see if it has closeOnClick enabled */ var lastVisibleAlert = $('.jAlert:visible:last'); if( lastVisibleAlert.options.closeOnClick ) { lastVisibleAlert.closeAlert(); } }; /* Keydown on document (escape key) */ $.fn.jAlert.onEscKeyDown = function(e){ /* Escape = 27 */ if(e.keyCode === 27){ /* Find top visible jAlert and see if it has closeOnClick enabled */ var lastVisibleAlert = $('.jAlert:visible:last'); if( lastVisibleAlert.options.closeOnEsc ) { lastVisibleAlert.closeAlert(); } } }; /* If you're not using the DOM (aka, you're not hiding or showing a specific alert, you can just use $.jAlert */ $.jAlert = function(options){ return $.fn.jAlert(options); } /* Alert on click function - attach to existing dom */ $.fn.alertOnClick = function(options) { $(this).on('click', function(e){ e.preventDefault(); $.jAlert(options); return false; }); } /* Alert on click function - global, works for changing dom */ $.alertOnClick = function(selector, options) { $('body').on('click', selector, function(e){ e.preventDefault(); $.jAlert(options); return false; }); } /* Slowed window resize function */ var $jAlertResizeTimeout; $(window).resize(function () { window.clearTimeout($jAlertResizeTimeout); $jAlertResizeTimeout = window.setTimeout(function(){ $('.jAlert:visible').each(function(){ $(this).centerAlert(); }); }, 200); }); /* Onload callback for iframe, img, etc */ $.fn.jAlert.mediaLoaded = function(elem){ var wrap = elem.parents('.ja_media_wrap'), vid_wrap = wrap.find('.ja_video'); wrap.find('.ja_loader').remove(); if( vid_wrap.length > 0 ) { vid_wrap.fadeIn('fast'); } else { elem.fadeIn('fast'); } elem.parents('.jAlert').centerAlert(); } /* END OF ON JQUERY LOAD */ })(jQuery); // source --> https://langhamfinancial.co.uk/wp-content/plugins/wp-megamenu/addons/wpmm-featuresbox/wpmm-featuresbox.js?ver=1 jQuery(document).ready(function($){'use strict'; var clr = ''; var clr_bg = ''; $(".wpmm-featurebox-hcolor").on({ mouseenter: function () { clr = $(this).css('color'); clr_bg = $(this).css('backgroundColor'); $(this).css("color", $(this).data("hover-color")); $(this).css("background-color", $(this).data("hover-bg-color")); }, mouseleave: function () { $(this).css("color", clr ); $(this).css("background-color", clr_bg ); } }); });